Rows: 19,025
Columns: 17
$ cntry <chr> "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT", "AT"…
$ ccnthum <chr> "Principalmente humano", "Igualmente natural y human…
$ ccrdprs <chr> "4", "Mucho", "8", "6", "Mucho", "8", "7", "8", "2",…
$ wrclmch <chr> "Muy preocupado", "Extremadamente preocupado", "Extr…
$ gndr <fct> Hombre, Mujer, Mujer, Mujer, Hombre, Mujer, Mujer, M…
$ agea <dbl> 65, 21, 53, 78, 64, 59, 77, 52, 75, 44, 49, 63, 76, …
$ eisced <chr> "Secundaria alta alta", "Terciaria baja", "Terciaria…
$ impricha <chr> "No parecido a mi", "Un poco parecido a mi", "Un poc…
$ ipeqopta <chr> "Parecido a mi", "Parecido a mi", "Muy parecido a mi…
$ ipmodsta <chr> "Parecido a mi", "Parecido a mi", "Algo parecido a m…
$ impfuna <chr> "Algo parecido a mi", "Parecido a mi", "Parecido a m…
$ impenva <chr> "Parecido a mi", "Muy parecido a mi", "Muy parecido …
$ age_group <fct> 3a Edad, Juventud, Madurez, 4a Edad, Madurez, Madure…
$ region <fct> Centro Europa, Centro Europa, Centro Europa, Centro …
$ education_level <fct> Medio, Alto, Alto, Alto, Medio, Alto, Medio, Alto, M…
$ wrclmch_segmented <fct> Alto, Alto, Alto, Alto, Alto, Alto, Medio, Alto, Baj…
$ ccrdprs_segmented <fct> Medio, Alto, Alto, Medio, Alto, Alto, Medio, Alto, B…
Row {data-height=50%} ————————————-
Row {data-height=400}
---
title: "Creencias, actitudes y valores hacia el cambio climático"
output:
flexdashboard::flex_dashboard:
orientation: rows
vertical_layout: fill
social: menu
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(tidyverse)
library(plotly)
library(leaflet)
library(ggplot2)
# Ajustar opciones globales de knitr para suprimir mensajes y avisos
knitr::opts_chunk$set(
message = FALSE,
warning = FALSE
)
# Establecer el directorio de trabajo de forma persistente
knitr::opts_knit$set(root.dir = "C:/Users/Iuliu/Documents/PROYECTOCD")
```
```{r load-data}
# Leer el archivo CSV desde la subcarpeta '1_Datos'
datos <- read_csv("1_Datos/3_Datos_depurados.csv")
# Leer el archivo CSV desde la subcarpeta '1_Datos'
datos <- read_csv("1_Datos/3_Datos_depurados.csv", col_types = cols(
cntry = col_character(),
ccnthum = col_character(),
ccrdprs = col_character(),
wrclmch = col_character(),
gndr = col_character(),
agea = col_double(),
eisced = col_character(),
impricha = col_character(),
ipeqopta = col_character(),
ipmodsta = col_character(),
impfuna = col_character(),
impenva = col_character(),
age_group = col_character(),
region = col_character(),
education_level = col_character(),
wrclmch_segmented = col_character(),
ccrdprs_segmented = col_character()
), show_col_types = FALSE)
# Convertir columnas a factores
datos <- datos %>%
mutate(
gndr = factor(gndr, levels = c("Hombre", "Mujer")),
wrclmch_segmented = factor(wrclmch_segmented, levels = c("Bajo", "Medio", "Alto")),
ccrdprs_segmented = factor(ccrdprs_segmented, levels = c("Bajo", "Medio", "Alto")),
age_group = factor(age_group, levels = c("Juventud", "Juventud Adulta", "Adultez", "Madurez", "3a Edad", "4a Edad")),
region = factor(region, levels = c("Nord Oeste", "Nord Este", "Nord Europa", "Centro Europa", "Sud Este")),
education_level = factor(education_level, levels = c("Bajo", "Medio", "Alto"))
)
# Filtrar datos eliminando la opción de "No creo que el cambio climatico este ocurriendo" y valores NA
filtered_data <- datos %>%
filter(ccnthum != "No creo que el cambio climatico este ocurriendo" &
!is.na(wrclmch_segmented) &
!is.na(ccrdprs_segmented) &
!is.na(age_group) &
!is.na(education_level) &
!is.na(gndr))
# Verificar la estructura de los datos
glimpse(datos)
```
Page 1
=====================================
Row {data-height=50}
-----------------------------------------------------------------------
### Edad media
```{r}
edad_media <- mean(datos$agea, na.rm = TRUE)
valueBox(round(edad_media, 1), "Media de Edad", icon = "fa-users", color = "#AFEEEE")
```
### Nivel de preocupación general por el cambio climático
```{r}
preocupacion_mas_frecuente <- names(sort(table(datos$wrclmch), decreasing = TRUE))[1]
valueBox(preocupacion_mas_frecuente, "Preocupación más frecuente por el cambio climático", icon = "fa-leaf", color = "#AFEEEE")
```
### Nivel de responsabilidad hacia la reducción del cambio climático
```{r}
responsabilidad_mas_frecuente <- names(sort(table(datos$ccrdprs_segmented), decreasing = TRUE))[1]
valueBox(responsabilidad_mas_frecuente, "Nivel de responsabilidad personal general para reducir el cambio climático", icon = "fa-hand-paper", color = "#AFEEEE")
```
Row {data-height=50}
-----------------------------------------------------------------------
### Distribución por Género
```{r}
data_genero <- datos %>%
count(gndr) %>%
mutate(percentage = n / sum(n) * 100)
plot_ly(data_genero, labels = ~gndr, values = ~percentage, type = 'pie',
textinfo = 'label+percent', insidetextorientation = 'radial',
marker = list(colors = c('#B0C4DE', '#D8BFD8')))
```
### Distribución por Nivel de Educación
```{r}
data_educacion <- datos %>%
count(education_level) %>%
mutate(percentage = n / sum(n) * 100)
plot_ly(data_educacion, labels = ~education_level, values = ~percentage, type = 'pie',
textinfo = 'label+percent', insidetextorientation = 'radial',
marker = list(colors = c('#ADD8E6', '#87CEFA', '#4682B4')))
```
Page 2
=====================================
Row {data-height=50%}
-------------------------------------
Column {data-width=50%}
-------------------------------------
### Causas del Cambio Climático y Nivel de Preocupación por el Cambio Climático
```{r}
# Filtrar datos eliminando la opción de "No creo que el cambio climático esté ocurriendo" y valores NA
filtered_data <- datos %>%
filter(ccnthum != "No creo que el cambio climatico este ocurriendo" & !is.na(wrclmch_segmented))
# Crear el gráfico con un gradiente de colores vibrantes y distinguibles para el nivel de preocupación
ggplot(filtered_data, aes(x = ccnthum, fill = factor(wrclmch_segmented, levels = c("Bajo", "Medio", "Alto")))) +
geom_bar(position = "stack", stat = "count") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(x = "Causa del Cambio Climatico", y = "Conteo", fill = "Nivel de Preocupacion") +
scale_fill_manual(values = c("Bajo" = "#a1dab4", "Medio" = "#41b6c4", "Alto" = "#2c7fb8")) +
guides(fill = guide_legend(reverse = FALSE)) # Asegura que la leyenda esté en el orden correcto
```
### Causas del Cambio Climático y Nivel de Responsabilidad Personal para reducirlo
```{r}
# Crear el gráfico con un gradiente de colores vibrantes y diferenciados para el nivel de responsabilidad personal
ggplot(filtered_data, aes(x = ccnthum, fill = factor(ccrdprs_segmented, levels = c("Bajo", "Medio", "Alto")))) +
geom_bar(position = "stack", stat = "count") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(x = "Causa del Cambio Climatico", y = "Conteo", fill = "Nivel de Responsabilidad") +
scale_fill_manual(values = c("Bajo" = "#fdcc8a", "Medio" = "#fc8d59", "Alto" = "#d7301f")) +
guides(fill = guide_legend(reverse = FALSE)) # Asegura que la leyenda esté en el orden correcto
```
Row {data-height=50%}
-------------------------------------
Column {data-width=50%}
-------------------------------------
### Causas del Cambio Climático y Grupos de Edad
```{r}
# Crear el gráfico de barras apiladas para causas y grupos de edad
ggplot(filtered_data, aes(x = age_group, fill = ccnthum)) +
geom_bar(position = "stack", stat = "count") +
theme_minimal() +
labs(x = "Grupo de Edad", y = "Numero de Respuestas", fill = "Causa del Cambio Climatico") +
scale_fill_manual(values = c("Procesos naturales" = "blue",
"Principalmente natural" = "cyan",
"Igualmente natural y humano" = "green",
"Principalmente humano" = "orange",
"Completamente humano" = "red"))
```
### Nivel de Responsabilidad Personal y Nivel de Educación
```{r}
# Crear el gráfico con un gradiente de colores vibrantes y diferenciados para el nivel de responsabilidad personal
ggplot(filtered_data, aes(x = education_level, fill = factor(ccrdprs_segmented, levels = c("Bajo", "Medio", "Alto")))) +
geom_bar(position = "stack", stat = "count") +
theme_minimal() +
labs(x = "Nivel de Educacion", y = "Conteo", fill = "Nivel de Responsabilidad") +
scale_fill_manual(values = c("Bajo" = "#fdcc8a", "Medio" = "#fc8d59", "Alto" = "#d7301f")) +
guides(fill = guide_legend(reverse = FALSE)) # Asegura que la leyenda esté en el orden correcto
```
Page 3
=====================================
Row {data-height=400}
### Nivel de Responsabilidad Personal y Género
```{r}
# Crear el gráfico con un gradiente de colores vibrantes y diferenciados para el nivel de responsabilidad personal
ggplot(filtered_data, aes(x = gndr, fill = factor(ccrdprs_segmented, levels = c("Bajo", "Medio", "Alto")))) +
geom_bar(position = "stack", stat = "count") +
theme_minimal() +
labs(x = "Genero", y = "Conteo", fill = "Nivel de Responsabilidad") +
scale_fill_manual(values = c("Bajo" = "#fdcc8a", "Medio" = "#fc8d59", "Alto" = "#d7301f")) +
guides(fill = guide_legend(reverse = FALSE)) # Asegura que la leyenda esté en el orden correcto
```